package com.research.service.impl;

import java.util.List;

import com.research.common.MetaObjectForXmlHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.research.mapper.ResearchProductMapper;
import com.research.domain.entity.ResearchProduct;
import com.research.service.IResearchProductService;

/**
 * 研究机构-机构项目、成果、获奖关联Service业务层处理
 *
 * @author hst
 * @date 2025-03-25
 */
@Service
public class ResearchProductServiceImpl implements IResearchProductService
{
    @Autowired
    private ResearchProductMapper researchProductMapper;

    /**
     * 查询研究机构-机构项目、成果、获奖关联
     *
     * @param id 研究机构-机构项目、成果、获奖关联主键
     * @return 研究机构-机构项目、成果、获奖关联
     */
    @Override
    public ResearchProduct selectResearchProductById(String id)
    {
        return researchProductMapper.selectResearchProductById(id);
    }

    /**
     * 查询研究机构-机构项目、成果、获奖关联列表
     *
     * @param researchProduct 研究机构-机构项目、成果、获奖关联
     * @return 研究机构-机构项目、成果、获奖关联
     */
    @Override
    public List<ResearchProduct> selectResearchProductList(ResearchProduct researchProduct)
    {
        return researchProductMapper.selectResearchProductList(researchProduct);
    }

    @Override
    public List<ResearchProduct> selectResearchProductListInverse(ResearchProduct researchProduct)
    {
        return researchProductMapper.selectResearchProductListInverse(researchProduct);
    }

    /**
     * 新增研究机构-机构项目、成果、获奖关联
     *
     * @param researchProduct 研究机构-机构项目、成果、获奖关联
     * @return 结果
     */
    @Override
    public int insertResearchProduct(ResearchProduct researchProduct)
    {
        MetaObjectForXmlHandler.fillForInsertGenUuid(researchProduct);
        return researchProductMapper.insertResearchProduct(researchProduct);
    }

    /**
     * 修改研究机构-机构项目、成果、获奖关联
     *
     * @param researchProduct 研究机构-机构项目、成果、获奖关联
     * @return 结果
     */
    @Override
    public int updateResearchProduct(ResearchProduct researchProduct)
    {
        MetaObjectForXmlHandler.fillForUpdate(researchProduct);
        return researchProductMapper.updateResearchProduct(researchProduct);
    }

    /**
     * 批量删除研究机构-机构项目、成果、获奖关联
     *
     * @param ids 需要删除的研究机构-机构项目、成果、获奖关联主键
     * @return 结果
     */
    @Override
    public int deleteResearchProductByIds(String[] ids)
    {
        return researchProductMapper.deleteResearchProductByIds(ids);
    }

    /**
     * 删除研究机构-机构项目、成果、获奖关联信息
     *
     * @param id 研究机构-机构项目、成果、获奖关联主键
     * @return 结果
     */
    @Override
    public int deleteResearchProductById(String id)
    {
        return researchProductMapper.deleteResearchProductById(id);
    }
}
